#ifndef KEYBOARDSUBJECT_H
#define KEYBOARDSUBJECT_H

#include "d3dUtil.h"
#include "Message.h"
#include "KeyboardListener.h"

class KeyboardSubject
{
public:
	~KeyboardSubject(void);
	virtual void AddKeyboardListener(KeyboardListener *listener);
	virtual void DeleteKeyboardListener(KeyboardListener *listener);
	virtual void KeyboardNotify(KeyboadMsg msg);
	static	KeyboardSubject* Instance();

protected:
	KeyboardSubject(void);
	KeyboardSubject(KeyboardSubject& );
	KeyboardSubject& operator=(const KeyboardSubject& );

private:
	std::set<KeyboardListener*>		keyboardListeners;
};

#endif


